home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / pluginy Firefox / 3576 / 3576.xpi / chrome / googleshortcuts.jar / content / googlebuttonsSettings.js < prev    next >
Text File  |  2009-11-10  |  5KB  |  119 lines

  1. if(!de) var de={};
  2. if(!de.soerenrinne) de.soerenrinne={};
  3. if(!de.soerenrinne.GoogleButtons) de.soerenrinne.GoogleButtons={};
  4. if(!de.soerenrinne.GoogleButtons.Settings) de.soerenrinne.GoogleButtons.Settings={};
  5.  
  6. de.soerenrinne.GoogleButtons.Settings = function (){
  7.     
  8.     var pub = {};
  9.  
  10.     googlebuttonsPrefs = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService).getBranch("de.soerenrinne.googlebuttons.");
  11.     
  12.     var servicesList = googlebuttonsPrefs.getCharPref('wholeshebang');
  13.     var soerenrinneServicesArray = new Array();
  14.     soerenrinneServicesArray = servicesList.split(',');
  15.     soerenrinneServicesArray.sort(function(x,y){ 
  16.         var a = String(x).toUpperCase(); 
  17.         var b = String(y).toUpperCase(); 
  18.         if (a > b) 
  19.             return 1 
  20.         if (a < b) 
  21.             return -1 
  22.         return 0; 
  23.     });
  24.     var soerenrinneNumberOfServices = soerenrinneServicesArray.length;
  25.                                 
  26.     pub.loadOptions = function() {
  27.     
  28.         try {
  29.             numberInColumn = soerenrinneNumberOfServices / 4;
  30.             // Add items
  31.             var vbox1 = document.getElementById("vbox1");
  32.             var vbox2 = document.getElementById("vbox2");
  33.             var vbox3 = document.getElementById("vbox3");
  34.             var vbox4 = document.getElementById("vbox4");
  35.             
  36.             for (var j=0; j<soerenrinneNumberOfServices; j++) {
  37.                 var id = soerenrinneServicesArray[j];
  38.                 var idStripped = id.replace(/\ /g, "").toLowerCase();
  39.                 var child = create_Checkbox(idStripped, " "+id);
  40.                 if (document.getElementById(idStripped) == null) {
  41.                     if (j < numberInColumn)
  42.                         vbox1.appendChild(child);
  43.                     else if (j < 2*numberInColumn)
  44.                         vbox2.appendChild(child);
  45.                     else if (j < 3*numberInColumn)
  46.                         vbox3.appendChild(child);
  47.                     else
  48.                         vbox4.appendChild(child);
  49.                 }
  50.                 document.getElementById(idStripped).checked = googlebuttonsPrefs.getBoolPref(id);
  51.             }            
  52.             
  53.             document.getElementById("settings").checked = googlebuttonsPrefs.getBoolPref("settings");
  54.             document.getElementById("focustab").checked = googlebuttonsPrefs.getBoolPref("focustab");
  55.             document.getElementById("openintab").checked = googlebuttonsPrefs.getBoolPref("openintab");
  56.             
  57.             if(googlebuttonsPrefs.getBoolPref('orient_horizontally') == true) {
  58.                 document.getElementById('settingsOrientation').selectedItem = document.getElementById('orient_horizontally');
  59.             } else {
  60.                 document.getElementById('settingsOrientation').selectedItem = document.getElementById('orient_vertically');
  61.             }
  62.             
  63.             if(googlebuttonsPrefs.getBoolPref('dropdown') == false) {
  64.                 document.getElementById('settingsDisplay').selectedItem = document.getElementById('toolbar');
  65.             } else {
  66.                 document.getElementById('settingsDisplay').selectedItem = document.getElementById('dropdown');
  67.             }
  68.             
  69.         } catch (e) {
  70.             alert("Error on loading settings:\n" + e.name + ", " + e.message);
  71.         }
  72.     }
  73.     
  74.     pub.saveOptions = function() {
  75.     
  76.         try {            
  77.             for (var i=0;i<soerenrinneNumberOfServices;i++)
  78.             {
  79.                 var id = soerenrinneServicesArray[i];
  80.                 var idStripped = id.replace(/\ /g, "").toLowerCase();
  81.                 if (document.getElementById(idStripped).checked)
  82.                     googlebuttonsPrefs.setBoolPref(id, true);
  83.                 else
  84.                     googlebuttonsPrefs.setBoolPref(id, false);
  85.             }
  86.             
  87.             (document.getElementById("settings").checked) ? googlebuttonsPrefs.setBoolPref("settings", true) : googlebuttonsPrefs.setBoolPref("settings", false);
  88.                     
  89.             (document.getElementById("focustab").checked) ? googlebuttonsPrefs.setBoolPref("focustab", true) : googlebuttonsPrefs.setBoolPref("focustab", false);
  90.                     
  91.             (document.getElementById("openintab").checked) ? googlebuttonsPrefs.setBoolPref("openintab", true) : googlebuttonsPrefs.setBoolPref("openintab", false);
  92.             
  93.             (document.getElementById('orient_horizontally').selected == true) ? googlebuttonsPrefs.setBoolPref('orient_horizontally', true) : googlebuttonsPrefs.setBoolPref('orient_horizontally', false);
  94.             
  95.             (document.getElementById('toolbar').selected == true) ? googlebuttonsPrefs.setBoolPref('dropdown', false) : googlebuttonsPrefs.setBoolPref('dropdown', true);
  96.             
  97.             var prefService = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService);
  98.             prefService.savePrefFile(null);
  99.  
  100.             
  101.         } catch (e) {
  102.             alert("Error on saving settings:\n" + e.name + ", " + e.message);
  103.         }
  104.         
  105.         window.close();
  106.     }
  107.     
  108.     create_Checkbox = function(aCheckboxID, aCheckboxLabel) {
  109.         const XUL_NS = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";
  110.           var item = document.createElementNS(XUL_NS, "checkbox"); // create a new XUL checkbox
  111.           item.setAttribute("id", aCheckboxID);
  112.         item.setAttribute("label", aCheckboxLabel);
  113.         item.setAttribute("src", "chrome://googlebuttons/skin/" + aCheckboxID + ".gif");
  114.           return item;
  115.     }
  116.     
  117.     return pub;
  118. }();
  119.